# 查看int类型占用的字节数
import sys


# # 方法1：使用sys.getsizeof()查看对象占用的字节数
# x = 8888
# print(f"整数 {x} 占用的字节数: {sys.getsizeof(x)} 字节")

# # Python int类型的数字范围
# print("\n=== Python int类型的数字范围 ===")

# # Python 3中的int类型理论上是无限制的（受内存限制）
# # 但我们可以查看一些实际的范围信息

# # 查看不同大小整数的字节数
# small_int = 1
# medium_int = 1000000
# large_int = 10**100  # 一个非常大的数

# print(f"小整数 {small_int} 占用: {sys.getsizeof(small_int)} 字节")
# print(f"中等整数 {medium_int} 占用: {sys.getsizeof(medium_int)} 字节")
# print(f"大整数 {large_int} 占用: {sys.getsizeof(large_int)} 字节")

# 在32位和64位系统上的限制（理论值）
import platform
# print(f"\n系统架构: {platform.architecture()[0]}")
# # 对于有符号整数，理论范围是：
# # 32位系统: -2^31 到 2^31-1 (-2,147,483,648 到 2,147,483,647)
# # 64位系统: -2^63 到 2^63-1 (-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807)

# # 检查对象大小
# normal_int = 42
# print(sys.getsizeof(normal_int))  # 28字节
# import array
# compact_ints = array.array('i', [42])
# print(sys.getsizeof(compact_ints))  # 更紧凑

# a_tuple = (1, 2, 3, 4 , 5 ,6,2 ,2,2)
# print(a_tuple)
# for a in range(len(a_tuple)):
#   print(a_tuple[a])
  

# print(f"a_tuple.index : {a_tuple.index(6)}")

# a_tuple = {'a':123,'b':456}
# # for key,value in a_tuple.items():
# #   print(f"key:{key},value:{value}")
# print(a_tuple.get('a', []))
# print(a_tuple.get('c', [1,2,3]))
import copy
a =  (1, 2, [3, 4])
print(f"a:{a},{id(a)}")
b = copy.deepcopy(a)
print(f"b:{b},{id(b)}")

print(f"a:{a},{id(a)}")
print(f"b:{b},{id(b)}")

a = frozenset({1, 2})
b = frozenset({2, 3})

print(a | b)    # frozenset({1, 2, 3})    并集
print(a & b)    # frozenset({2})          交集



